/* Sub windows */
GdkWindow *bin_window;
- GdkWindow *header_window;
/* CSS nodes */
GtkCssNode *header_node;
else
gdk_window_hide (window);
}
- gdk_window_show (tree_view->priv->header_window);
}
}
allocation.height});
gtk_widget_register_window (widget, tree_view->priv->bin_window);
- /* Make the column header window */
- tree_view->priv->header_window = gdk_window_new_child (gtk_widget_get_parent_window (widget),
- GDK_ALL_EVENTS_MASK,
- &(GdkRectangle) {
- 0,
- 0,
- MAX (tree_view->priv->width, allocation.width),
- tree_view->priv->header_height});
- gtk_widget_register_window (widget, tree_view->priv->header_window);
-
tmp_list = tree_view->priv->children;
while (tmp_list)
{
gdk_window_destroy (priv->bin_window);
priv->bin_window = NULL;
- gtk_widget_unregister_window (widget, priv->header_window);
- gdk_window_destroy (priv->header_window);
- priv->header_window = NULL;
-
if (priv->drag_window)
{
gtk_widget_unregister_window (widget, priv->drag_window);
if (gtk_widget_get_realized (widget))
{
- gdk_window_move_resize (tree_view->priv->header_window,
- - (gint) gtk_adjustment_get_value (tree_view->priv->hadjustment),
- 0,
- MAX (tree_view->priv->width, allocation->width),
- tree_view->priv->header_height);
gdk_window_move_resize (tree_view->priv->bin_window,
- (gint) gtk_adjustment_get_value (tree_view->priv->hadjustment),
gtk_tree_view_get_effective_header_height (tree_view),
g_object_ref (button);
gtk_container_remove (GTK_CONTAINER (tree_view), button);
- gtk_widget_set_parent_window (button, tree_view->priv->header_window);
gtk_tree_view_update_button_position (tree_view, tree_view->priv->drag_column);
gtk_widget_set_parent (button, GTK_WIDGET (tree_view));
g_object_unref (button);
gtk_widget_get_allocation (button, &drag_allocation);
width = drag_allocation.width;
height = drag_allocation.height;
- tree_view->priv->drag_highlight_window = gdk_window_new_child (tree_view->priv->header_window,
+ tree_view->priv->drag_highlight_window = gdk_window_new_child (gtk_widget_get_window (widget),
GDK_VISIBILITY_NOTIFY_MASK | GDK_POINTER_MOTION_MASK,
&(GdkRectangle){
tree_view->priv->drag_column_x,
}
else if (arrow_type == DRAG_COLUMN_WINDOW_STATE_ARROW)
{
- GtkAllocation button_allocation;
+ GtkAllocation button_allocation, allocation;
GtkWidget *button;
width = gtk_tree_view_get_expander_size (tree_view);
/* Get x, y, width, height of arrow */
- gdk_window_get_origin (tree_view->priv->header_window, &x, &y);
+ gtk_widget_get_allocation (widget, &allocation);
+ x = allocation.x;
+ y = allocation.y;
+
if (reorder->left_column)
{
button = gtk_tree_view_column_get_button (reorder->left_column);
}
else
{
- reorder->right_align = gdk_window_get_width (tree_view->priv->header_window)
+ reorder->right_align = gtk_widget_get_allocated_width (GTK_WIDGET (tree_view))
+ TREE_VIEW_COLUMN_DRAG_DEAD_MULTIPLIER (tree_view);
}
}
gtk_widget_get_allocation (button, &button_allocation);
button_allocation.y = 0;
- tree_view->priv->drag_window = gdk_window_new_child (tree_view->priv->header_window,
+ tree_view->priv->drag_window = gdk_window_new_child (gtk_widget_get_window (GTK_WIDGET (tree_view)),
GDK_VISIBILITY_NOTIFY_MASK | GDK_POINTER_MOTION_MASK,
&button_allocation);
gtk_widget_register_window (GTK_WIDGET (tree_view), tree_view->priv->drag_window);
return TRUE;
}
-GdkWindow *
-_gtk_tree_view_get_header_window (GtkTreeView *tree_view)
-{
- return tree_view->priv->header_window;
-}
-
GtkTreeViewColumn *
_gtk_tree_view_get_focus_column (GtkTreeView *tree_view)
{
gdk_window_move (tree_view->priv->bin_window,
- gtk_adjustment_get_value (tree_view->priv->hadjustment),
gtk_tree_view_get_effective_header_height (tree_view));
- gdk_window_move (tree_view->priv->header_window,
- - gtk_adjustment_get_value (tree_view->priv->hadjustment),
- 0);
dy = tree_view->priv->dy - (int) gtk_adjustment_get_value (tree_view->priv->vadjustment);
tree_view->priv->in_scroll = TRUE;
gdk_window_scroll (tree_view->priv->bin_window, 0, dy);
gtk_widget_hide (button);
gtk_widget_unmap (button);
}
- gdk_window_hide (tree_view->priv->header_window);
}
}
_gtk_tree_view_column_cell_set_dirty (tmp_column, TRUE);
}
- if (tree_view->priv->n_columns == 0 &&
- gtk_tree_view_get_headers_visible (tree_view))
- gdk_window_hide (tree_view->priv->header_window);
-
gtk_widget_queue_resize (GTK_WIDGET (tree_view));
}
g_object_ref_sink (column);
- if (tree_view->priv->n_columns == 0 &&
- gtk_widget_get_realized (GTK_WIDGET (tree_view)) &&
- gtk_tree_view_get_headers_visible (tree_view))
- {
- gdk_window_show (tree_view->priv->header_window);
- }
-
g_signal_connect (column, "notify::sizing",
G_CALLBACK (column_sizing_notify), tree_view);
gtk_widget_get_realized (priv->tree_view))
{
if (priv->visible &&
- gdk_window_is_visible (_gtk_tree_view_get_header_window (GTK_TREE_VIEW (priv->tree_view))))
+ gtk_tree_view_get_headers_visible (GTK_TREE_VIEW (priv->tree_view)))
{
gtk_widget_show (priv->button);
g_return_if_fail (gtk_widget_get_realized (priv->tree_view));
g_return_if_fail (priv->button != NULL);
- g_return_if_fail (_gtk_tree_view_get_header_window (tree_view) != NULL);
- gtk_widget_set_parent_window (priv->button, _gtk_tree_view_get_header_window (tree_view));
+ gtk_widget_set_parent_window (priv->button, gtk_widget_get_window (priv->tree_view));
- display = gdk_window_get_display (_gtk_tree_view_get_header_window (tree_view));
+ display = gtk_widget_get_display (priv->tree_view);
gtk_widget_get_allocation (priv->button, &allocation);
- priv->window = gdk_window_new_input (_gtk_tree_view_get_header_window (tree_view),
+ priv->window = gdk_window_new_input (gtk_widget_get_window (priv->tree_view),
GDK_ALL_EVENTS_MASK,
&(GdkRectangle) {(allocation.x + (rtl ? 0 : allocation.width)) - TREE_VIEW_DRAG_WIDTH / 2, 0,
TREE_VIEW_DRAG_WIDTH, _gtk_tree_view_get_header_height (tree_view)});
priv->tree_view = GTK_WIDGET (tree_view);
- /* make sure we own a reference to it as well. */
- if (_gtk_tree_view_get_header_window (tree_view))
- gtk_widget_set_parent_window (priv->button, _gtk_tree_view_get_header_window (tree_view));
-
gtk_widget_set_parent (priv->button, GTK_WIDGET (tree_view));
priv->property_changed_signal =